package com.sq.partner.manager.service;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import com.sq.partner.manager.common.Result;
import com.sq.partner.manager.mybatis.model.GatewayChannelInfo;
import com.sq.partner.manager.mybatis.model.GatewayNocarBase;
import com.sq.partner.manager.mybatis.model.GatewayPolicy;
import com.sq.partner.manager.util.Page;

/**
 * 财险保单查询Controller
 * @author zhihuizhao
 *
 */
public interface IGatewayNocarPolicyListService {

	/**
	 * 分页条件查询财险保单信息
	 * @param page
	 * @return
	 * @throws Exception
	 */
	public Page queryNocarPolicyPageByCriteria(Page page) throws Exception;

	/**
	 * 条件查询财险保单信息
	 * @param page
	 * @return
	 * @throws Exception
	 */
	public List<Map<String,Object>> queryNocarPolicyListByCriteria(Map<String,Object> map) throws Exception;

	/**
	 * 财险保单信息导出
	 * @param nocarPolicyList
	 * @throws Exception
	 */
	public void downloadNocarPolicyFile(List<Map<String,Object>> nocarPolicyList,HttpServletResponse response) throws Exception;

	/**
	 * 根据所选机构获取其下的合作伙伴集合
	 * @param channelInfo
	 * @return
	 * @throws Exception
	 */
	public List<Map> queryChannelListOfNocar(GatewayChannelInfo channelInfo,String flag)throws Exception;

	/**
	 * 财险查询详细信息
	 */
	public GatewayPolicy queryPolicyInfoByPolNo(String polNo) throws Exception;

	/***
	 * 财险查询被保人
	 */
	public GatewayNocarBase queryNocarBaseByPolicyId(String policyId) throws Exception;
	
	/**
	 * 查询保单邮件并重新发送
	 */
	public Result addEmailReSend(String polNo,String email) throws Exception;
	
	/**
	 * 查询保单短信并重新发送
	 */
	public Result addSMSReSend(String polNo,String phoneNo) throws Exception;

	/**
	 * 汇总信息查询
	 * @throws Exception 
	 */
	public Map<String, Object> queryNocarPolicyAll(Map<String, String> map) throws Exception;
	
	/*
	 * 	查询OFD和到账证明下载链接
	 * */
	
	public Map<String  , String> queryOFDAndProofDownloadUrl ( String policyId) throws Exception;

}
